home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / ms_dos / attr / attr.asm next >
Assembly Source File  |  1993-11-30  |  1KB  |  136 lines

  1. INCLUDE    STD.H
  2.  
  3. CODE    SEGMENT
  4.     ASSUME    CS:CODE, DS:CODE, ES:CODE
  5.  
  6.     ORG    80H
  7.  
  8. CMDLEN    DB    ?
  9. CMDBUF    DB    127 DUP(?)
  10.  
  11.     ORG    100H
  12.  
  13. START:
  14.     MOV    BL, CMDLEN
  15.     CMP    BL, 4
  16.     JNB    SWITCH
  17.     JMP    USE
  18.  
  19. SWITCH:
  20.     XOR    BH, BH
  21.     CMP    CMDBUF[BX - 2], '/'
  22.     JE    SW_OK
  23.     JMP    USE
  24.  
  25. SW_OK:
  26.     MOV    DX, OFFSET CMDBUF[1]
  27.     MOV    CMDBUF[BX - 2], 0
  28.     
  29.     MOV    AX, 4300H
  30.     INT    21H
  31.     JNC    CHKCX
  32.     JMP    ERROR
  33.  
  34. CHKCX:
  35.     TEST    CX, SBD
  36.     JE    SUBD
  37.     TEST    CX, LBL
  38.     JE    LABL
  39.     JMP    SHORT    GETSW
  40.     
  41. SUBD:
  42.     MOV    TRG, NOT 10H
  43.     JMP    SHORT    GETSW
  44.  
  45. LABL:
  46.     MOV    TRG, NOT 08H
  47.     JMP    SHORT    GETSW
  48.     
  49. GETSW:
  50.     MOV    AL, CMDBUF[BX - 1]
  51.     CMP    AL, '?'
  52.     JNE    GET1
  53.     JMP    LIST
  54.  
  55. GET1:
  56.     AND    AL, NOT('A' XOR 'a')
  57.     CMP    AL, 'R'
  58.     JE    R
  59.     CMP    AL, 'W'
  60.     JE    W
  61.     CMP    AL, 'H'
  62.     JE    H
  63.     CMP    AL, 'N'
  64.     JE    N
  65.     CMP    AL, 'S'
  66.     JE    S
  67.     CMP    AL, 'B'
  68.     JE    B
  69.     JMP    SERROR
  70.  
  71. R:
  72.     OR    CX, READ_ONLY
  73.     CMP    CX, READ_ONLY + HIDDEN
  74.     JE    S
  75.     JMP    CHANGE
  76.  
  77. W:
  78.     AND    CX, NOT    READ_ONLY
  79.     JMP    CHANGE
  80.  
  81. H:
  82.     OR    CX, HIDDEN
  83.     CMP    CX, HIDDEN + READ_ONLY
  84.     JE    S
  85.     JMP    CHANGE
  86.  
  87. N:
  88.     AND    CX, NOT    HIDDEN
  89.     JMP    SHORT    CHANGE
  90.  
  91. S:
  92.     MOV    CX, SYSTEM
  93.     JMP    SHORT    CHANGE
  94.  
  95. B:
  96.     AND    CX, 00100011B
  97.     JMP    SHORT    CHANGE
  98.  
  99. CHANGE:
  100.  
  101.     MOV    AX, 4301H
  102.     INT    21H
  103.     JC    ERROR
  104.     XOR    AL, AL
  105.     JMP    RETURN
  106.  
  107. SERROR:
  108.     PRINT    SERRMSG
  109.     
  110.     MOV    AL, 1
  111.     JMP    RETURN
  112.  
  113. ERROR:
  114.     PRINT    ERRMSG
  115.     
  116.     MOV    AL, 2
  117.     JMP    RETURN
  118.  
  119. USE:
  120.     PRINT    USEMSG
  121.     
  122.     JMP    RETURN
  123.     
  124. INCLUDE    CHK.ASM
  125.  
  126. RETURN:
  127.     CRLF
  128.  
  129.     MOV    AH, 4CH
  130.     INT    21H
  131.  
  132. INCLUDE    ATTR.DEF
  133.  
  134. CODE    ENDS
  135.     END    START
  136.